Queries are often processed over data streams using computers in a system. Such systems typically receive a query that is applied to a stream of data that changes over time rather than static data that is typically found stored in a database. Examples of data streams include real time stock quotes, real time traffic monitoring on highways, or real time packet monitoring on a computer network such as the Internet. In one example, data streams from network monitoring can be processed to detect intrusions and generate online performance metrics in response to queries on the data streams. In some examples, data streams can be infinitely tong and the amount of data too large to be persisted by a database management system.
Some prior systems have proposed use of a query compiler to receive a query and build an execution plan, which includes a tree of natively supported query operators. The query compiler can use the execution plan to update a global query plan which is used by a runtime engine to identify data from incoming streams that matches a query and based on the identified data to generate output data in a streaming fashion.